home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / JOE_SOUR.LHA / Sources.lha / Tempest / tempest->s!xconvert / Headers.h < prev   
Encoding:
C/C++ Source or Header  |  1996-05-02  |  39.2 KB  |  1,055 lines

  1. //**********************
  2. //*****  Includes  *****
  3. //**********************
  4.  
  5. #include "exec/types.h"
  6.  
  7. // * Numbers in () is the size of each field.
  8.  
  9. // * UBYTE & BYTE               = 1 Byte
  10. // * UWORD, WORD, SHORT, USHORT = 2 Bytes
  11. // * ULONG, LONG, int           = 4 Bytes
  12.  
  13. struct Globals
  14. {
  15.  TEXT activity[20];    // ( 20) Activity Name
  16.  
  17.  BYTE AN,              // (  1) Activity Number
  18.       aborttransfer,   // (  1) Abort Transfer
  19.       frontend,        // (  1)
  20.       frontendstatus,  // (  1)
  21.       hide,            // (  1) User hidden from who display
  22.       kickuser,        // (  1)
  23.       mute,            // (  1) User is in mute status
  24.       shutdown;        // (  1)
  25.  
  26.  long ULCPS,           // (  4) UL CPS
  27.       DLCPS,           // (  4) DL CPS
  28.       CurrentBaudRate; // (  4)
  29.  
  30.  char ULFileName[100], // (100) Current UL FileName
  31.       DLFileName[100]; // (100) Current DL FileName
  32.  
  33.  long ULPosition,      // (  4) Position of current file being uploaded
  34.       DLPosition,      // (  4) Position of current file being downloaded
  35.  
  36.       ULFileSize,      // (  4) FileSize of current file being uploaded
  37.       DLFileSize,      // (  4) FileSize of current file being downloaded
  38.  
  39.       ULBytes_Xfered,  // (  4) Total UL Bytes Transfered
  40.       ULFiles_Xfered,  // (  4) Total UL Files Transfered
  41.  
  42.       DLBytes_Xfered,  // (  4) Total DL Bytes Transfered
  43.       DLFiles_Xfered;  // (  4) Total DL Files Transfered
  44.  
  45.  BYTE ChatFlag,        // (  1) Sysop Avaialable Flag On       (1=Yes, 0=No) NOT ACTIVE YET
  46.       TempSysopAccess; // (  1) Temporary Sysop Access Flag On (1=Yes, 0=No)
  47.  
  48.  UBYTE AreaType;       // (  1) What kind of area.  0=Msg Area, 1=File Area
  49.  
  50.  ULONG JoinedArea,     // (  4) Current Area joined.
  51.        JoinedSubArea;  // (  4) Current Sub File Listing being used.
  52.  
  53.  TEXT ChatReason[50];  // ( 50) Operator Page Reason
  54.  
  55.  BYTE HydraDone;       // (  1)
  56.  
  57.  char LargeFiller[2940]; // (2940) Blank data for Future Use.
  58. };
  59.  
  60.  
  61. //*************************
  62. //*************************
  63. //*************************
  64. //*****  Struct User  *****  FiLE: Accounts.Data
  65. //*************************
  66. //*************************
  67. //*************************
  68.  
  69. struct User
  70. {
  71.  UWORD   Slot_Number;            // (  2) Account#
  72.  UBYTE   Status;                 // (  1) 0=Deleted, 1=Active, 2=New User, 3=Locked Out, 4=Created Account
  73.  
  74.  TEXT    Name[31],               // ( 31) Users Name
  75.          RealName[26],           // ( 26) Real Name
  76.          VoicePhone[21],         // ( 21) Voice Phone Number
  77.          DataPhone[21],          // ( 21) Data  Phone Number
  78.          Address[26],            // ( 26) Address
  79.          City[26],               // ( 26) City
  80.          State[4],               // (  4) State/Providence Code
  81.          Country[4],             // (  4) Country Code
  82.          MailRoute[15],          // ( 15) Zip Code / Mail Route
  83.          ComputerType[21],       // ( 21) Computer Type (Possible Code Instead)
  84.          Password[16],           // ( 16) Password
  85.          Comment[31];            // ( 31) Comment String
  86.  
  87.  UBYTE   Security;               // (  1) Access Level
  88.  UWORD   WeedDays,               // (  2) Days of inactivity until bbs auto deletes
  89.          ReduceDays;             // (  2) Days Paid for by a payer.                        (NOT USED YET)
  90.  UBYTE   ReducedAccess;          // (  1) Preset level to give to user after reduced days  (NOT USED YET)
  91.  
  92.  UBYTE   AnsiType,               // (  1) Ansi Type  0) Normal, 1) Amiga, 2) IBM, 3) RIP
  93.          Protocol,               // (  1) Protocol Selected: 0:Zmodem 1:Hydra
  94.          DEADProto,              // (  1) Not Used Anymore
  95.          HelpLevel,              // (  1) Level of Help
  96.          MSGHeader,              // (  1) Msg Header Type
  97.          EditorLines,            // (  1) Max Lines allowed in Editor      (NOT USED YET)
  98.          DescLines,              // (  1) File Listing lines, Descriptions
  99.          ViewMode,               // (  1) File Listing View Mode
  100.          WhoPrefs,               // (  1) Who Preferences
  101.          MB_J,                   // (  1) Message Rejoin
  102.          FB_J,                   // (  1) File rejoin
  103.          Length,                 // (  1) Length of screen
  104.          Width,                  // (  1) Width of screen
  105.          Language,               // (  1)
  106.          Translation,            // (  1) (NOT USED YET)
  107.          TimeZone,               // (  1) Time Zone Offset (NOT USED YET)
  108.          BirthDate_Day,          // (  1) DAY of birth
  109.          BirthDate_Month,        // (  1) MONTH of birth
  110.          BirthDate_Year,         // (  1) YEAR of birth
  111.          IdleTime,               // (  1) Idle time allowed for no activity (NOT USED YET)
  112.          NodeLastOn;             // (  1) Last node user was on
  113.  
  114.  UWORD   ForwardMailSlot,        // (  2) Slot Number of user to forward mail to! (NOT USED YET)
  115.          PWF;                    // (  2) Number of Password Failures
  116.  
  117.  UWORD   Total_Calls,            // (  2) # of Calls Total
  118.          Total_Posts,            // (  2) Msgs left total
  119.          Total_PostsReceived,    // (  2) Msgs Received
  120.          Total_ULFiles,          // (  2) # of Uploads
  121.          Total_DLFiles,          // (  2) # of Downloads
  122.          Total_TimeBank;         // (  2) Time Bank Value
  123.  ULONG   Total_ULBytes,          // (  4) Total Uploaded Bytes
  124.          Total_DLBytes;          // (  4) Total Downloaded Bytes
  125.  
  126.  UWORD   Limit_Calls,            // (  2) Calls ALLOWED per Day
  127.          Limit_Posts,            // (  2) Messages Allowed p/d
  128.          Limit_ULFiles,          // (  2) # of Uploads Per Period
  129.          Limit_DLFiles,          // (  2) # of Downloads Per Period
  130.          Limit_Time,             // (  2) Time Limit per day.
  131.          Limit_TimeBank,         // (  2)
  132.          Limit_ChatTime;         // (  2) Limit of Time user can be in chat door
  133.  ULONG   Limit_ULBytes,          // (  4) Limit Upload Bytes Per Period
  134.          Limit_DLBytes;          // (  4) Limit Download Bytes Per Period
  135.  
  136.  UBYTE   F_Ratio,                // (  1) File Ratio
  137.          B_Ratio;                // (  1) Byte Ratio
  138.  
  139.  UBYTE   Period_Type;            // (  1) Mins, Hours, Days, Weeks, Months, Years    (NOT USED YET)
  140.  UWORD   Period_Length,          // (  2) 24 hours or whatever! Set Limits by Period (NOT USED YET)
  141.          Period_Calls,           // (  2) Calls made  Today
  142.          Period_Posts,           // (  2) Todays Msgs Sent
  143.          Period_ULFiles,         // (  2) Todays Ul's
  144.          Period_DLFiles,         // (  2) Todays Dl's
  145.          Period_ChatTime;        // (  2) Time user has been in chat this period
  146.  ULONG   Period_ULBytes,         // (  4) Period Bytes Uploaded
  147.          Period_DLBytes;         // (  4) Period Bytes Downloaded
  148.  
  149.  UWORD   Left_DLFiles,           // (  2) Files left available for download
  150.          Left_ChatTime,          // (  2) Limit of Time user can be in chat door
  151.          Left_Time;              // (  2) Time Left
  152.  ULONG   Left_DLBytes;           // (  4) Bytes left for this period
  153.  
  154.  UWORD   DayCredits,             // (  2) For Payers
  155.          FileCredits;            // (  2) Files Paid for by a payer.
  156.  
  157.  ULONG   ByteCredits,            // (  4) Bytes Paid for by a payer.
  158.          PersonalBytes,          // (  4) Personal Area Bytes Limit
  159.          LastBaudRate;           // (  4) Last Baud Rate of a user.
  160.  
  161.  LONG    Time_First_Called,      // (  4) Time First Logged On
  162.          Time_Last_Logoff,       // (  4) Last Time LOGGED OFF
  163.          Time_Last_Connect;      // (  4) Time last CONNECTED
  164.  
  165. LONGBITS UserBitsA,              // (  4)
  166.          UserBitsB,              // (  4)
  167.          UtilBits,               // (  4) 32 bits for Programmers to use as they wish for utils.
  168.          LastCallFlags,          // (  4) Flags for activities during last call. Posted,UL,DL,etc (NOT USED YET)
  169.          CatFlags,               // (  4) Flags for Custom File Listing (NOT USED YET)
  170.          NFlags1,                // (  4) Normal Flags Part 1
  171.          NFlags2,                // (  4) Normal Flags Part 2
  172.          SFlags1,                // (  4) Sysop  Flags Part 1
  173.          SFlags2;                // (  4) Sysop  Flags Part 2
  174.  
  175.  char    MsgBase[41],            // (1x41=41) MB 0-39 Flags N,Y,S   // Change to 2 LONGBITS
  176.          FileBase[41];           // (1x41=41) FB 0-39 Flags N,Y,S   // one for normal, one for sysop
  177.  
  178.  UWORD   Last_Read_Message[40],  // (40x2=80) -position change- Last read pointer
  179.          Last_Scan_Message[40];  // (40x2=80)
  180.  
  181.  BYTE    AnsiColor;              // (  1) Ansi Color
  182.  BYTE    BExtras[29];            // (1x29=29)
  183.  
  184.  UWORD   CheckSum,               // (  2)
  185.          SerialNumber;           // (  2) Unique seiral number for flagged files, etc. (NOT USED YET)
  186.  
  187.  SHORT   SExtras[3];             // (3x2=6)
  188.  LONG    LExtras[3];             // (3x4=12)
  189. };
  190.  
  191. struct Csum
  192. {
  193.  UWORD Csum; // (  2)
  194. };
  195.  
  196. //*******************************
  197. //*******************************
  198. //*******************************
  199. //*****  Struct SystemData  ***** FiLE: SystemData.Data - (GLOBAL SETTINGS!)
  200. //*******************************
  201. //*******************************
  202. //*******************************
  203.  
  204. struct SystemData
  205. {
  206.  TEXT  Name[31],                  // ( 31) Name of BBS System
  207.        Location[51],              // ( 51) Location of BBS System
  208.        SysopName[31],             // ( 31) Sysop's Name
  209.  
  210.        // System Paths
  211.  
  212.        MainPath[41],              // ( 41) Main Path & Accounts.data
  213.  
  214.        NotUsed1[40],              // ( 40) Not Used
  215.  
  216.        AccountInfoPath[41],       // ( 41) Path to User Info Files
  217.  
  218.        NotUsed2[40],              // ( 40) Not Used
  219.  
  220.        CatalogsPath[41],          // ( 41) Path to Catalog files
  221.  
  222.        NotUsed3[121],             // (121) Not Used
  223.  
  224.        LogsPath[41],              // ( 41) path for Log & transcript
  225.  
  226.        NotUsed4[162],             // (162) Not Used
  227.  
  228.        TextDirPath[41],           // ( 41) Path to Text Directory
  229.  
  230.        NotUsed5[80],              // ( 80) Not Used
  231.  
  232.        UploadPath[41],            // ( 41) Path for all uploads and resume directory
  233.  
  234.        NotUsed6[40],              // ( 40) Not Used
  235.  
  236.        DoorsPath[41],             // ( 41) Door Path
  237.  
  238.        NotUsed7[202],             // (202) Not Used
  239.                                          
  240.        // Passwords
  241.  
  242.        LocalAccessPassword[21],   // ( 21) Password: Local Access (Sysop/Local Logins)
  243.        SysopCmdsPassword[21],     // ( 21) Password: Sysop Commands
  244.        NewUserPassword[21],       // ( 21) Password: New User's to apply
  245.        SystemEntryPassword[21],   // ( 21) Password: Users to enter system
  246.  
  247.        // Scripts
  248.  
  249.        LocalShell[101],           // (101) command to launch local cli
  250.  
  251.        NotUsed8[101],             // (101) NOT USED
  252.  
  253.        FontName[31],              // ( 31) Font Name
  254.  
  255.        RemoteShellPassword[21],   // ( 21) Password: Local Shell Access
  256.        LocalLogonPassword[21],    // ( 21) Password: Local Logon Password
  257.  
  258.        NotUsed9[81],              // ( 81) Not Used
  259.  
  260.        PresetD[16][26],           // (16x26=416) Descriptions of Presets
  261.  
  262.        BBSConfigPassword[21],     // ( 21) Password: BBSConfig Module
  263.  
  264.        Phone[31],                 // ( 31) BBS Phone Number
  265.  
  266.        NotUsed10[50],             // ( 50) Not Used
  267.  
  268.        SystemDescSeperater[81],   // ( 81) Defineable Description Seperator.
  269.  
  270.        CHAR_Extra[2278];          // (2278)
  271.  //________________________________________________________________________
  272.  
  273.  UBYTE LockViewMode,              // (  1) View mode to lock users into
  274.        Chat_H,                    // (  1) Chat Color for USER
  275.        Chat_M,                    // (  1) Chat Color for SYSOP
  276.        ULRewardP_Time,            // (  1) Percentage of time gained for uploads
  277.        MaxPages,                  // (  1) Maximum time user can page sysop per call
  278.        WindowToFront,             // (  1) window to front
  279.  
  280.        ChatMethod,                // (  1) Default Sysop Chat Method (0=Normal,1=Horizontal,2=Vertical)
  281.  
  282.        BitPlanes,                 // (  1) Bit Planes
  283.        Auto_Iconify,              // (  1) 0: open normal  1: open into icon
  284.        BackGround,                // (  1) BBS screen to back ground
  285.        UseWBReal,                 // (  1) Use Workbench Screen for Real Nodes.
  286.        UseWBLocal,                // (  1) Use WOrkbench Screen for Local Nodes.
  287.        HALFSCREEN,                // (  1) Half Screen Mode (1)
  288.        NotUsedUBYTE1,             // (  1)
  289.        LNBitPlanes,               // (  1) Bit Planes for Local Nodes
  290.  
  291.        Auto_IconifyL,             // (  1) Local Nodes (auto iconify or not)
  292.        BackGroundL,               // (  1) BBS screen to back ground (local)
  293.  
  294.        ASLRequesters,             // (  1) 0=Ask, 1=Always Use, 2=Never Use
  295.  
  296.        SystemFlags[108],          // (1x108=108)
  297.  
  298.        ULRewardP_DLCredits,       // (  1) Download Credits for a day for uploads
  299.  
  300.        AttemptsName,              // (  1) User Name Attempts
  301.        AttemptsPass,              // (  1) User Password Attempts
  302.        AttemptsSysP,              // (  1) System Password Attempts
  303.        AttemptsNewU,              // (  1) New User Password Attempts
  304.  
  305.        PassMinimum,               // (  1) Minimum characters required for user passwords.
  306.  
  307.        MAXDLINES,                 // (  1) Maximum Description Lines Allowed
  308.  
  309.        FontStyle,                 // (  1)
  310.        FontFlags,                 // (  1)
  311.  
  312.        LogType,                   // (  1) 0 = Remote Only, 1 = Local Only, 2 = All Nodes
  313.  
  314.        UBYTE_Extras[86];          // (1x86=86)
  315.  
  316.  BOOL  AutoScroll,                // (  2) Auto Scroll Screen Mode (Real Nodes)
  317.        AutoScrollL;               // (  2) Auto Scroll Screen Mode (Local Nodes)
  318.  
  319.  //________________________________________________________________________
  320.  
  321.  WORD  NumberOfLines,             // (  2) Total Number of Nodes
  322.  
  323.        NotUsedWord1,              // (  2)
  324.        NotUsedWord2,              // (  2)
  325.  
  326.        MaxEditorLines,            // (  2) Max number of editor lines allowed for msg editor.
  327.        MaxFlaggedFiles,           // (  2) Max number of flagged files allowed at one time.
  328.  
  329.        WORDExtras[30];            // (2x30=60)
  330.  
  331.  UWORD SWidthL,                   // (  2) Screen Width  (Local Nodes)
  332.        SHeightL,                  // (  2) Screen Height (Local Nodes)
  333.        OverScanTypeL,             // (  2) Overscan type (Local Nodes)
  334.        SWidth,                    // (  2) Screen Width  (Real Nodes)
  335.        SHeight,                   // (  2) Screen Height (Real Nodes)
  336.        OverScanType;              // (  2) Overscan type (Real Nodes)
  337.  //________________________________________________________________________
  338.  
  339.  int   FontSize,                  // (  4) 8: Defualt
  340.        MaxUsers,                  // (  4) Maximim User's allowed on system
  341.  
  342.        BBSPriority,               // (  4) Normal Priority
  343.        FileTransferPriority,      // (  4) File Trasfer Priority
  344.        DoorsPriority,             // (  4) Doors Priority
  345.        ExtraPriority,             // (  4)
  346.  
  347.        INT_Extras[26];            // (4x26=104)
  348.  //________________________________________________________________________
  349.  
  350.  long  LowFreeSpace,              // (  4) Low point for warning of low harddrive space
  351.        NoFreeSpace,               // (  4) Required harddrive space for uploads
  352.  
  353.        MaxSizeViewText,           // (  4) Max size of a file that can be viewed
  354.                                   // (  4) with online view text file command.
  355.  
  356.        SystemFlags1,              // (  4) System Flags (32 Flags) #1
  357.        SystemFlags2,              // (  4) System Flags (32 Flags) #2
  358.        SystemFlags3,              // (  4) System Flags (32 Flags) #3
  359.        SystemFlags4,              // (  4) System Flags (32 Flags) #4
  360.        SystemFlags5,              // (  4) System Flags (32 Flags) #5
  361.        SystemFlags6,              // (  4) System Flags (32 Flags) #6
  362.        SystemFlags7,              // (  4) System Flags (32 Flags) #7
  363.        SystemFlags8,              // (  4) System Flags (32 Flags) #8
  364.  
  365.        LogFlags,                  // (  4) Log Flags (32 Flags)
  366.  
  367.        CatalogFlags,              // (  4) Custom Catalog On/Off Switchs.
  368.  
  369.        CopyBuffer,                // (  4) Defineable Copy Buffer
  370.  
  371.        LONG_Extras[26];           // (4x26=104)
  372.  
  373.   ULONG DisplayIDL,               // (  4) For Screen Mode (Local Nodes)
  374.         DisplayID;                // (  4) For Screen Mode (Real Nodes)
  375. };
  376.  
  377. //*******************************
  378. //*******************************
  379. //*******************************
  380. //*****  Struct NodeData  ******* FiLE: NodeData-x.Data - (PER NODE SETTINGS!)
  381. //*******************************
  382. //*******************************
  383. //*******************************
  384.  
  385. struct NodeData
  386. {
  387.  TEXT  NotUsed1[264],             // (264) Not Used
  388.  
  389.        // Modem Information
  390.  
  391.        DeviceName[31],            // ( 31) serial.device
  392.  
  393.        NotUsed2[50],              // ( 50) Not Used
  394.  
  395.        Open[61],                  // ( 61) Modem INIT string
  396.        Reset[31],                 // ( 31) Hangup/reset string
  397.        Ring[31],                  // ( 31) RING DETECTED string
  398.        Answer[31],                // ( 31) What to do when a ring
  399.        Busy[31],                  // ( 31) to make the modem off-hook
  400.        OnHook[21],                // ( 21) to make modem on-hook
  401.        Escape[21],                // ( 21) to get modems attention
  402.  
  403.        NotUsed3[102],             // (102) Not Used
  404.  
  405.        NodePassword[21],          // ( 21) Password for this node!
  406.  
  407.        CHAR_Extra[2979];          //(2979) Not Used
  408.  //________________________________________________________________________
  409.  
  410.  UBYTE LocalMode,                 // (  1) 0: Serial routines active  1:View Mode
  411.        Serial_Shared,             // (  1) 0: Normal,  1: Open in shared mode
  412.        AutoLoad,                  // (  1) 0: Yes,     1: No
  413.        HandShake,                 // (  1) 0: RTS/CTS 1: XON/XOFF 2:NONE
  414.  
  415.        DTR,                       // (  1) 0: No, 1: Yes Drop DTR on Hangup
  416.  
  417.        Parity,                    // (  1) 0:None 1:Even 2:Odd 3:Mark 4:Space
  418.        BitsChar,                  // (  1) 0:8 Bits 1:7 Bits
  419.        RAD_BOG,                   // (  1) 0:off  1:on
  420.        StopBits,                  // (  1) 0:1 Bit 1:2 Bits
  421.  
  422.        NotUsed5,                  // (  1) Not Used
  423.  
  424.        Parse,                     // (  1) 0:Parse 1:quick
  425.  
  426.        NotUsed6,                  // (  1) Not Used
  427.  
  428.        FLUSH,                     // (  1) 0: Normal  1:FLUSH SERIAL
  429.  
  430.        NotUsed7,                  // (  1) Not Used
  431.  
  432.        TIMEOT,                    // (  1) 30(Defalut) for hangu[p on incomming call
  433.  
  434.        NotUsed8,                  // (  1)
  435.        NotUsed9,                  // (  1)
  436.        NotUsed10,                 // (  1)
  437.        NotUsed11,                 // (  1)
  438.        NotUsed12,                 // (  1)
  439.  
  440.        Define[119],               // (119) Define Flags
  441.  
  442.        PrinterDumpStatus,         // (  1)
  443.        DEAD6,                     // (  1)
  444.        DEAD7,                     // (  1)
  445.        DEAD8,                     // (  1)
  446.        Sleeplogoff,               // (  1) Time before sleep logoff - was Define[41]
  447.        NotUsed13,                 // (  1)
  448.        NotUsed14,                 // (  1)
  449.        NotUsed15,                 // (  1)
  450.        MinAccessLevel,            // (  1) Minimum access level to logon to this node.
  451.        LoadedLanguage,            // (  1) Current Loaded Lanugage
  452.        NumberOfRings,             // (  1) Number of rings before modem picks up.
  453.        ModemPauseDelay,           // (  1) Delay for modem pause.
  454.        ModemCharDelay,            // (  1) Delay in between characters.
  455.  
  456.        ReadWriteBufferSize,       // (  1) in KB
  457.        SerialBufferSize,          // (  1) in KB
  458.  
  459.        BYTE_Extras[86];           // ( 86)
  460.  //________________________________________________________________________
  461.  
  462.  WORD  CurrentNode,               // (  2) Current Node #
  463.  
  464.        WORDExtras[40];            // (2x40=80)
  465.  //________________________________________________________________________
  466.  
  467.  int   SerialDeviceNumber,        // (  4) serial device unit #  (ULONG)
  468.        DeadF1,                    // (  4) Not Used
  469.        DEADFLAG1,                 // (  4) Not Used
  470.        DEADFLAG2,                 // (  4) Not Used
  471.        DEADCRAP,                  // (  4) Not Used
  472.  
  473.        FrontEnd,                  // (  4) Front End Flag
  474.  
  475.        DEADFLAG3,                 // (  4) Not Used
  476.  
  477.        INT_Extras[28];            // (4x28=112)
  478.  //________________________________________________________________________
  479.  
  480.  long  HighestBaudRate,           // (  4) Highest BAUD RATE / DTE Rate
  481.        MinBaudRate,               // (  4) Minimum Baud Rate
  482.  
  483.        NodeFlags1,                // (  4) Node Flags (32 Flags) #1
  484.  
  485.        NodeFlags2,                // (  4) Node Flags (32 Flags) #2
  486.        NodeFlags3,                // (  4) Node Flags (32 Flags) #3
  487.        NodeFlags4,                // (  4) Node Flags (32 Flags) #4
  488.        NodeFlags5,                // (  4) Node Flags (32 Flags) #5
  489.        NodeFlags6,                // (  4) Node Flags (32 Flags) #6
  490.        NodeFlags7,                // (  4) Node Flags (32 Flags) #7
  491.        NodeFlags8,                // (  4) Node Flags (32 Flags) #8
  492.  
  493.        LONG_Extras[30];           // (4x30=120)
  494. };
  495. //=========================================================================
  496. //*****************************
  497. //*****************************
  498. //*****  Struct Msg_Area  ***** FiLE: Messages.data
  499. //*****************************
  500. //*****************************
  501. //=========================================================================
  502. struct Msg_Area
  503. {
  504.  TEXT     Name[31],       // ( 31) Name of Area
  505.           What[41],       // ( 41) Description of Area
  506.           Path[51],       // ( 51) Path
  507.           Password[21],   // ( 21) Password
  508.           EChar[50];      // ( 50)
  509.  
  510.  BYTE     ON,             // (  1) On/Off Switch
  511.           Sex,            // (  1) Sex Type Allowed (M,F,B)
  512.           EBYTE[20];      // ( 20)
  513.  
  514.  UBYTE    AccessLevel,    // (  2) Minimum Access Level Required
  515.           Area,           // (  2) Area Number
  516.           MinAge,         // (  2) Minimum Age to enter
  517.           MaxAge,         // (  2) Maximum Age allowed to enter
  518.           Allow,          // (  2) DEAD FLAG - 0 = All, 1=Private Only, 2=Public Only, 3=Aynonoums Only
  519.           EUBYTE[19];     // (2x19=38)
  520.  
  521.  WORD     RollOver,       // (  2)
  522.           WExtras[4];     // (2x4=8)
  523.  
  524.  int      Eint[4];        // (4x4=16)
  525.  long     ELong[5];       // (4x5=20)
  526.  
  527.  LONGBITS Flags1,         // (  4)
  528.           Flags2;         // (  4)
  529. };
  530.  
  531. #define MA1_ALLOW_MSGREAD  (1<<0) // Allow Users to read messages  (0=On,1=Off)
  532. #define MA1_ALLOW_MSGPOST  (1<<1) // Allow Users to write messages (0=On,1=Off)
  533.  
  534. #define MA1_ALLOW_PUBLIC   (1<<2) // Allow Public Msgs             (0=On,1=Off)
  535. #define MA1_ALLOW_PRIVATE  (1<<3) // Allow Private Msgs            (0=On,1=Off)
  536. #define MA1_ALLOW_ANON     (1<<4) // Allow Anonymous Msgs          (0=On,1=Off)
  537. #define MA1_ALLOW_EALL     (1<<5) // Allow EALL's / Priority Mail. (0=On,1=Off)
  538.  
  539. #define MA1_ALLOW_EDIT     (1<<6) // Allow Edit of existing messages. (0=On,1=Off)
  540. #define MA1_ALLOW_ULPOST   (1<<7) // Allow Msgs to be uploaded        (0=On,1=Off)
  541. #define MA1_ALLOW_ATTACH   (1<<8) // Allow Files to be attached to messages. (0=On,1=Off)
  542. #define MA1_FORCE_ANON     (1<<9) // Force Amonymous Messages (0=NO, 1=YES)
  543.  
  544. //#define MA1_
  545. //#define MA1_
  546. //#define MA1_
  547. //#define MA1_
  548. //#define MA1_
  549. //#define MA1_
  550. //#define MA1_
  551. //=========================================================================
  552. //******************************
  553. //******************************
  554. //*****  Struct File_Area  ***** FiLE: Files.data
  555. //******************************
  556. //******************************
  557. //=========================================================================
  558. struct File_Area
  559. {
  560.  TEXT     Name[31],       // ( 31) Name of Area
  561.           What[41],       // ( 41) Description of Area
  562.           Path[51],       // ( 51) Path
  563.           Password[21],   // ( 21) Password to enter.
  564.           EChar[50];      // ( 50)
  565.  
  566.  BYTE     DelMonths,      // (  1) Deletion Months, 0 = Disabled.
  567.           ON,             // (  1) On/Off Switch
  568.           Sex,            // (  1) Sex Type Allowed (M,F,B)
  569.  
  570.           ULTimesCredit,  // (  1) How many times credit a user gets given for uploads
  571.           DLTimesCredit,  // (  1) How many times credit a user gets taken for downloads
  572.                           //       0 & 1 both give 1x credit, to give no credits there is
  573.                           //       another flag for that.
  574.           EBYTE[18];      // ( 18)
  575.  
  576.  UBYTE    AccessLevel,    // (  1) Minimum Access Level Required
  577.           Area,           // (  1)
  578.           MinAge,         // (  1)
  579.           MaxAge,         // (  1)
  580.           ULTimeReward,   // (  1) Upload Time Reward Percentage.
  581.           DLTimeReward,   // (  1) Download Time Reward Percentage.
  582.           DLBonusReward,  // (  1) Reward given to upload for every download of his UL's
  583.           FileIDDetection,// (  1) Dead Flag!
  584.           FileIDCreation, // (  1) Dead Flag!
  585.           Allow,          // (  1) Dead Flag!
  586.           Catalogs,       // (  1) Number of Catalog Listings in Area
  587.           MaxFNLength,    // (  1) Max FileName Length Allowed in this area
  588.  
  589.           EUBYTE[15];     // ( 15)
  590.  
  591.  WORD     RollOver,       // (  2) (NOT USED YET)
  592.           WExtras[4];     // (2x4=8)
  593.  int      Eint[4];        // (4x4=16)
  594.  long     ELong[5];       // (4x5=20)
  595.  
  596.  LONGBITS Flags,          // (  4)
  597.           Flags2;         // (  4)
  598. };
  599. // Flags Bits
  600.  
  601. #define FA_FREEDL         (1<<2) // All files are free donwload?     0=No, 1=Yes
  602. #define FA_NOULCREDITS    (1<<3) // No Upload Credits for this area. 0=Credits, 1=No
  603. #define FA_AUTOVALIDATE   (1<<4) // Files are auto validated?        0=Yes, 1=No
  604. #define FA_ALLOW_UPLOAD   (1<<5) // Allow Uploading                  0=Yes
  605. #define FA_ALLOW_DOWNLOAD (1<<6) // Allow Downloading                0=Yes
  606. #define FA_ALLOW_VIEWLIST (1<<7) // Allow viwing file listings       0=Yes
  607. #define FA_USECDDATPATH   (1<<8) // Use CD/DAT Temporary Path        0=No
  608. #define FA_CatDupeFileCheck (1<<9) // Use Dupe File Check              0=No
  609. //=========================================================================
  610. //***********************
  611. //***********************
  612. //*****  Node_Info  *****  FiLE: NodeInfo_x
  613. //***********************
  614. //***********************  // Add a ton more extra pointers next upgrade.
  615. //=========================================================================
  616. struct node_info
  617. {
  618.  struct Globals *GLOB;
  619.  
  620.  int  *mode;
  621.  
  622.  long *fileshouldbe;
  623.  long *timelimit;
  624.  
  625.  struct User *UserInfo;
  626.  struct SystemData *SystemDataInfo;
  627.  struct NodeData *NodeDataInfo;
  628.  struct Today *TodayInfo;
  629.  struct Iconify *IconInfo;
  630.  struct Editor *EdInfo;
  631.  
  632.  struct Screen *screen1Info;
  633.  struct Window *windowInfo, *StatusPaneInfo, *iconInfo, *twindowInfo;
  634.  
  635.  struct IOExtSer *WriteSerReqInfo, *ReadSerReqInfo;
  636.  struct IOStdReq *WriteConReqInfo, *ReadConReqInfo;
  637.  struct IOStdReq *StatWriteReqInfo;
  638.  
  639.  struct MsgPort *WriteSerPortInfo, *ReadSerPortInfo, *TimerPortInfo;
  640.  struct MsgPort *WriteConPortInfo, *ReadConPortInfo;
  641.  struct MsgPort *StatWritePortInfo;
  642.  
  643.  struct timerequest *TimerMsgInfo;
  644.  struct Msg_Area *MSGInfo;
  645.  struct File_Area *FILESInfo;
  646.  struct RATES *RATESInfo;
  647.  struct R_SLOTS *R_SLOTSInfo;
  648.  struct Questions *NotUsedAnyMore; // Get rid of in future version
  649. struct Runtimeinfo *RI;            // Get rid of in future version
  650. };
  651. //=========================================================================
  652. //******************************
  653. //*****  System_Info File  ***** FiLE: Node:system_info   (NOT USED YET)
  654. //******************************
  655. //=========================================================================
  656. struct system_info
  657. {
  658.  struct SystemData   *SystemData;
  659.  struct Msg_Area     *Msg_Areas;
  660.  struct File_Area    *File_Areas;
  661.  struct ScreenColors *ScreenColors;
  662.  struct F_KEYS       *FK;
  663.  
  664.  struct ptable       *ptable;
  665.  char                *inp;
  666.  
  667.  char *extras[50];
  668. };
  669. //=========================================================================
  670. //****************************
  671. //*****  Struct Letters  ***** FiLE: MsgArea_x.data
  672. //****************************
  673. //=========================================================================
  674. struct Letters  // 170 Bytes
  675. {
  676.  TEXT  Receiver [31],     // ( 31)
  677.        Sender   [31],     // ( 31)
  678.        Subject  [31];     // ( 31)
  679.  
  680.  UBYTE Type,              // (  1) 0 Public, 1 Private, 3 MassMail
  681.        Kind2;             // (  1) Not used   (Forwarded Msg)
  682.  
  683.  UWORD Lines,             // (  2) Number of lines in message
  684.        Read;              // (  2) Times the message has been read
  685.  
  686.  long  Sent,              // (  4) Time posted
  687.        Rcvd;              // (  4) Time Received
  688.  
  689.  ULONG Area,              // (  4) Msg Area Number
  690.        SubArea,           // (  4) DEAD (NOT USED)
  691.        Number,            // (  4) Actual Msg Number
  692.        NumberInArea,      // (  4) Msg # from Area msg is stored in.
  693.        ReplyFrom,         // (  4) Replied from Msg #
  694.        FirstReply;        // (  4) First Reply to Msg
  695.  
  696.  // Restrictions
  697.  
  698.  TEXT  Password[4],       // (  4)
  699.        StateCode[4],      // (  4)
  700.        CountryCode[4];    // (  4)
  701.  
  702.  UBYTE MinAccessLev,      // (  1) Minimum Access Level to read message
  703.        MaxAccessLev,      // (  1) Maximum Access Level that can read message
  704.        MinAge,            // (  1) Minimum Age
  705.        MaxAge,            // (  1) Maximum Age
  706.        DelDays;           // (  1) Delete after so many days.
  707.  
  708.  LONGBITS Flags1,         // (  4) Flags 1 (look below)
  709.           Flags2;         // (  4) Flags 2 (look below)
  710.  
  711.  char extraroom[17];      // ( 18)
  712. };
  713.  
  714. #define LET_ACTIVE     (1<<0)  // Active/Deleted, 0=Active, 1=Deleted
  715. #define LET_ANONYMOUS  (1<<1)  //
  716. #define LET_LOCKED     (1<<2)  // Locked Msg, 0=No, 1=Yes (can't be deleted)
  717.  
  718. #define LET_ATTACHFILE (1<<10) // Attached Files? 0=No, 1=Yes
  719. #define LET_DEL_A_FILE (1<<11) // Auto Delete Attached Files? 0=No, 1=Yes
  720.  
  721. //=========================================================================
  722. struct LettersPointer     //  FiLE: MsgArea_x.point
  723. {
  724.  ULONG SlotPosition,      // (  4)
  725.        FirstNumber,       // (  4)
  726.        LastNumber;        // (  4)
  727. };
  728. //=========================================================================
  729. struct LettersIdx         //  FiLE: MsgArea_x.idx
  730. {
  731.  TEXT  Receiver [31],     // ( 31)
  732.        Sender   [31];     // ( 31)
  733.  ULONG Number;            // (  4)
  734. };
  735. //=========================================================================
  736. struct LettersCSum        //  FiLE: MsgArea_x.csum
  737. {
  738.  UWORD Receiver,          // (  2)
  739.        Sender;            // (  2)
  740. };
  741. //=========================================================================
  742. //**************************
  743. //*****  Today Struct  *****  FiLE: Runtime.data
  744. //**************************
  745. //=========================================================================
  746. struct Today
  747. {
  748.  TEXT   NMName[35],   // ( 35) Name who sent message to next caller
  749.         extra[40];    // ( 40)
  750.  
  751.  UWORD  CBAUD[20],    // (2x20=40) 300,1200,2400,4800,7200,9600,12000,14400,16800,19200,28800
  752.         AbortedDl,    // (  2)
  753.         AbortedUl,    // (  2)
  754.         UpRes,        // (  2)
  755.         DLRes,        // (  2)
  756.         Users,        // (  2)
  757.         Uploads,      // (  2)
  758.         Downloads,    // (  2)
  759.         Feedback,     // (  2)
  760.         New,          // (  2)
  761.         Messages,     // (  2)
  762.         F_Sysop;      // (  2)
  763.  
  764.  int    Calls,        // (  4)
  765.         NMAno,        // (  4)
  766.         BBSNumbers,   // (  4)
  767.         Busy,         // (  4)
  768.         extra2,       // (  4)
  769.         extra3,       // (  4)
  770.         Total;        // (  4)
  771.  
  772.  long   dl_bytes,     // (  4)
  773.         ul_bytes,     // (  4)
  774.         NMDate,       // (  4)
  775.         TODAY,        // (  4)
  776.         L_ext1,       // (  4)
  777.         L_ext2,       // (  4)
  778.         connected;    // (  4)
  779.  
  780.  TEXT   Last[31];     // ( 31) Last Caller on BBS
  781.  
  782.  UWORD  CurrentUser;  // (  2)
  783.  
  784.  TEXT   Reserved[31]; // ( 31) Reserved Caller
  785.  
  786.  UWORD  CTYPE[20];    // (2x20=40) (0,HST),(1,v32),(2,vFC),(3,v34)
  787.  
  788.  TEXT   ExtraNotUsed[124]; // (124)
  789. };
  790. //=========================================================================
  791. //*******************
  792. //*****  Rates  *****  FiLE: Baud-x.data (x=Node)
  793. //*******************
  794. //=========================================================================
  795. struct RATES
  796. {
  797.  ULONG MinNewUserBaud,
  798.        MinULBaud[24],
  799.        MinDLBaud[24],
  800.        MinConnectBaud[24];
  801. };
  802. //=========================================================================
  803. //****************************
  804. //*****  Presets Struct  *****  FiLE: Presets.Data
  805. //****************************
  806. //=========================================================================
  807. struct Defaults
  808. {
  809.  char     MB[41],
  810.           FB[41];
  811.  
  812.  UBYTE    Security,
  813.           F_Ratio,
  814.           B_Ratio,
  815.           IdleTime,
  816.           ViewMode;
  817.  
  818.  UWORD    DayCredits,
  819.           FileCredits,
  820.           WeedDays,
  821.           ReduceDays,
  822.           ReducedAccess;
  823.  
  824.  UWORD    Limit_Calls,
  825.           Limit_Posts,
  826.           Limit_ULFiles,
  827.           Limit_DLFiles,
  828.           Limit_Time,
  829.           Limit_TimeBank,
  830.           Limit_ChatTime;
  831.  ULONG    Limit_ULBytes,
  832.           Limit_DLBytes;
  833.  
  834.  UWORD    Total_ULFiles,
  835.           Total_DLFiles;
  836.  ULONG    Total_ULBytes,
  837.           Total_DLBytes,
  838.           ByteCredits,
  839.           PersonalBytes;
  840.  
  841.  LONGBITS NFlags1,
  842.           NFlags2,
  843.           SFlags1,
  844.           SFlags2,
  845.           CatFlags;
  846.  
  847.  char     CExtra[110];
  848.  UBYTE    UBExtra[50];
  849.  UWORD    UWExtra[25];
  850.  ULONG    ULExtra[12];
  851. };
  852. //=========================================================================
  853. //*******************************
  854. //*****  Flag Files Struct  *****
  855. //*******************************
  856. //=========================================================================
  857. struct FLAG
  858. {
  859.  TEXT  FileName[31],         // ( 31)
  860.        ShortDesc[46];        // ( 46)
  861.  ULONG Area,                 // (  4)
  862.        SubArea,              // (  4)
  863.        Number,               // (  4)
  864.        Bytes;                // (  4)
  865.  BYTE  COST;                 // (  1) 0=Normal , 1=Free
  866.  char  filler[20];           // ( 20)
  867. };
  868. //=========================================================================
  869. //****************************
  870. //*****  Catalog Struct  *****  FiLE: Catalog_x.data
  871. //****************************   132
  872. //=========================================================================
  873. struct Catalogs
  874. {
  875.  ULONG    SeekPosition;      // (  4) Seek Position for Description Entry
  876.  UWORD    SizeOfEntry;       // (  2) Size to Read In
  877.  
  878.  TEXT     FileName[31],      // ( 31)
  879.           Uploader[31],      // ( 31)
  880.           Password[4],       // (  4)
  881.           DateComment[9];    // (  9) Date Comment Overlay
  882.  
  883.  BYTE     Security,          // (  1) 1 = Public, -1 = Sysop, -2 = UnVal, -3 = BadArchive
  884.           Level,             // (  1) Secuirty Level Number to download/view.
  885.           LevelType;         // (  1) Secuirty Type (Below, Equal too, Greather than
  886.  
  887.  WORD     PurgeDays,         // (  2) Days before Auto Purge
  888.           ReceiverSlot,      // (  2) Slot Number of Receiver
  889.           TimesDL;           // (  2) Times Downloaded
  890.  
  891.  long     DateU,             // (  4) Date file was uploaded
  892.           LastDateD,         // (  4) Last Date file was downloaded
  893.           DAfterDate,        // (  4) Date that file can start being downloaded
  894.           PurgeDate,         // (  4) Purge file after this date.
  895.           ExtraDate;         // (  4)
  896.  
  897.  ULONG    Bytes;             // (  4) Filesize
  898.  
  899.  UWORD    FilePayBack,       // (  2) File Payback to U/L
  900.           FileCost;          // (  2) File Cost to D/L
  901.  ULONG    BytePayBack,       // (  4) Byte PayBack to U/L
  902.           ByteCost;          // (  4) Byte Cost for D/L
  903.  
  904.  UWORD    BestCPS;           // (  2)
  905.  
  906.  LONGBITS Flags;             // (  4) Active,Free,ExtDesc,DLock,ELock,HDOnline,ArcTest- 32 Togglable Bits
  907. };
  908. //=========================================================================
  909. //*********************************
  910. //*****  Fast Catalog Struct  *****  FiLE: Catalog_x.seek
  911. //*********************************   37 bytes
  912. //=========================================================================
  913. struct SeekCatalogs
  914. {
  915.  ULONG    SeekPosition;      // (  4) Seek Position for Description Entry
  916.  UWORD    SizeOfEntry;       // (  2) Size to Read In
  917.  TEXT     FileName[31];      // ( 31)
  918. };
  919. //=========================================================================
  920. //*****************************************
  921. //*****  Catalog Descriptions Struct  *****
  922. //*****************************************
  923. //=========================================================================
  924. struct CatalogsD   // Just a work structure, does NOT match any files.
  925. {
  926.  TEXT DateU[9],
  927.       LastDateD[9],
  928.       Receiver[31];
  929.  
  930.  TEXT Line[20][46];
  931. };
  932. //=========================================================================
  933. struct R_SLOTS
  934. {
  935.  UBYTE MinAccess00[24],
  936.        MinAccess15[24],
  937.        MinAccess30[24],
  938.        MinAccess45[24];
  939. };
  940. /* the struct to tell the protocol what files are to be downloaded */
  941. //=========================================================================
  942. struct Down_Load
  943. {
  944.  TEXT File[255],
  945.       FileName[31],
  946.       ShortDesc[46],
  947.       ex_string[123];
  948.  int  Area,
  949.       Cost,
  950.       FileNumber;
  951.  
  952.  ULONG SubArea;
  953.  
  954.  int  ex_ints[8];
  955.  long Bytes;
  956.  LONGBITS Flags;         // (1<<0) = CD Rom Path or not.
  957.  long ex_longs[9];
  958. };
  959. //=========================================================================
  960. // the protocol, fills in these stats about each file downloaded so the bbs
  961. // knows what happened, and how to charge the user for the downloads
  962. //=========================================================================
  963. struct DownLoad_Status
  964. {
  965.  TEXT  File[255],
  966.        ex_strings[5][255];
  967.  
  968.  int   Cost,                        // 1: Free dl,  0: charge normal
  969.        Area,
  970.        Good,
  971.        Errors,
  972.        Mins,
  973.        Secs,
  974.        FileNumber;
  975.  
  976.  ULONG SubArea;
  977.  
  978.  int   ex_ints[6];
  979.  
  980.  long  First_Byte_Sent,
  981.        Last_Byte_Sent,
  982.        Bytes_To_Charge,
  983.        Files_To_Charge,
  984.        CPS,
  985.        FileSize,
  986.        Seconds,
  987.        ex_longs[9];
  988. };
  989. //=========================================================================
  990. struct Name  // Accounts Index File
  991. {
  992.  char Username[31];
  993. };
  994. //=========================================================================
  995. struct TempMessage // New Tempest Server Structure.
  996. {
  997.  struct Message Msg;
  998.  UWORD  command;     // 2 bytes
  999.  UWORD  node;        // 2 bytes
  1000.  
  1001.  WORD   word1;       // 2 byte variables.
  1002.  WORD   word2;
  1003.  WORD   word3;
  1004.  
  1005.  LONG   long1;       // 4 byte variables.
  1006.  LONG   long2;
  1007.  LONG   long3;
  1008.  
  1009.  ULONG  ulong1;      // 4 byte unsigned.
  1010.  ULONG  ulong2;
  1011.  ULONG  ulong3;
  1012.  
  1013.  char string[200];   // string for passing strings.
  1014.  char extra[200];    // Extra space for future variables.
  1015. };
  1016. //=========================================================================
  1017. #include <tempest/Private.h>
  1018.  
  1019.  
  1020.  
  1021.  
  1022. /*
  1023. struct Indx  // NOT USED ANYMORE!!
  1024. {
  1025.  int Active,
  1026.      FirstMsgNumber,
  1027.      LastMsgNumber,
  1028.      LastMsgSlot;
  1029. };
  1030.  
  1031. struct OldLetters // NOT USED ANYMORE!!
  1032. {
  1033.  TEXT  Receiver [31],
  1034.        Sender   [31],
  1035.        Subject  [31],
  1036.        Password [9];
  1037.  
  1038.  long  Sent,
  1039.        Rcvd;
  1040.  
  1041.  int   Number,         //  the number of the actuall message
  1042.        MsgArea,        //  what area the message was written in
  1043.        Delete,         //  Delete  0:OK  1:DELETED
  1044.        Reply,          //  This message was replied from
  1045.        Ano,            //  0: normal 1:Quit Sender
  1046.        Read,           //  Times the message has been read
  1047.        Status;         //  0=Private 1=Public 2=Password 3=Priority
  1048.                        //  4=Fowarded Mail
  1049.  LONGBITS Flags; // 0=Attached Files?
  1050.  int   Locked;         //  0: na kill it if needed  1:Keep it
  1051. };
  1052. #define LET_ATTACHFILE (1<<10) // Attached Files? 0=No, 1=Yes
  1053. #define LET_DEL_A_FILE (1<<11) // Auto Delete Attached Files? 0=No, 1=Yes
  1054. */
  1055.